package week01

// 26. 删除有序数组中的重复项
// https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

// 双指针

//	1、根据去重后的数组可知，nums[l] != nums[l-1]
//	2、由于 nums[0] 没有前一项，l、r从 1 开始
//	3、数组从 l 处分为两段，l 左边已去重，l 和 l 右边未去重，下一个值应当放入 l 处
//	4、所以当前值 sums[r] 和 sums[l-1] 对比

func removeDuplicates(nums []int) int {
	if len(nums) == 0 {
		return 0
	}

	var l, r = 1, 1
	for r < len(nums) {
		if nums[l-1] != nums[r] {
			nums[l] = nums[r]
			l++
		}
		r++
	}
	return l
}